package cn.soft863.users.service;

import java.util.List;
import java.util.Map;

import cn.soft863.common.util.PageInfoUtil;
import cn.soft863.users.pojo.AAccount;
import cn.soft863.users.pojo.ABalance;
import cn.soft863.users.pojo.AConsumeHistory;
import cn.soft863.users.pojo.AUsers;

/**
 * Service
 * 
 * 封装和处理数据的 将数据库中取出来的数据加工一下 因为页面上需要的数据往往真不是查询一张表就可以的.
 * 
 * 接口和实现类
 * 
 * 一个接口可以持有多个Dao
 * 
 * @author 902-B-Book
 *
 */
public interface IUsersService
{
	/*---- 用户表操作开始 ----*/
	/**
	 * 添加一条用户
	 * 
	 * @param users
	 * @return
	 */
	int saveOneUsersService(AUsers users);
	
	/**
	 * 更新一条用户
	 * @param users
	 * @return
	 */
	int updateOneUsersService(AUsers users);

	/**
	 * 查询多条用户
	 * 
	 * @return
	 */
	List<AUsers> findCondListUsersService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/**
	 * 查询一条用户
	 * 
	 * @return
	 */
	AUsers findOneUsersService(Map<String, Object> condMap);
	/*---- 用户表操作结束 ----*/
	
	/*---- 消费信息表表操作开始 ----*/
	/**
	 * 添加一条消费记录
	 * 
	 * @param consume
	 * @return
	 */
	int saveOneconsumeService(AConsumeHistory consume);
	
	/**
	 * 更新一条消费记录
	 * @param consume
	 * @return
	 */
	int updateOneconsumeService(AConsumeHistory consume);

	/**
	 * 查询多条消费记录
	 * 
	 * @return
	 */
	List<AConsumeHistory> findCondListconsumeService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/**
	 * 查询一条消费记录
	 * 
	 * @return
	 */
	AConsumeHistory findOneconsumeService(Map<String, Object> condMap);
	/*---- 消费信息表操作结束 ----*/

	/*---- 余额表操作开始 ----*/
	/**
	 * 添加一条余额
	 * 
	 * @param balance
	 * @return
	 */
	int saveOneBalanceService(ABalance balance);
	
	/**
	 * 更新一条余额
	 * @param balance
	 * @return
	 */
	int updateOneBalanceService(ABalance balance);

	/**
	 * 查询多条余额
	 * 
	 * @return
	 */
	List<ABalance> findCondListBalanceService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/**
	 * 查询一条余额
	 * 
	 * @return
	 */
	ABalance findOneBalanceService(Map<String, Object> condMap);
	/*---- 余额表操作结束 ----*/

	/*---- 账户表操作开始 ----*/
	/**
	 * 添加一条账户
	 * 
	 * @param account
	 * @return
	 */
	int saveOneAccountService(AAccount account);
	
	/**
	 * 更新一条账户
	 * @param account
	 * @return
	 */
	int updateOneAccountService(AAccount account);

	/**
	 * 查询多条账户
	 * 
	 * @return
	 */
	List<AAccount> findCondListAccountService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/**
	 * 查询一条账户
	 * 
	 * @return
	 */
	AAccount findOneAccountService(Map<String, Object> condMap);
	/*---- 账户表操作结束 ----*/
}
